
Page({
  data: {
    welfareList: [], // 存放列表数据
    pageNum: 1, // 当前页码，从1开始
    pageSize: 10, // 每页条数
    loading: false, // 是否正在加载
    noMore: false, // 是否没有更多数据
  },

  onLoad() {
    this.fetchData(); // 页面加载时先获取第一页数据
    // setTimeout(() => this.onReachBottom(), 3000); // 测试用

  },

  // 上拉触底事件
  onReachBottom() {
    if (this.data.loading || this.data.noMore) return; 
    this.setData({
      pageNum: this.data.pageNum + 1 // 页码 +1
    });
    this.fetchData(); // 调用接口获取下一页数据
  },

  // 获取数据的方法
  fetchData() {
    this.setData({ loading: true }); // 开始加载，显示加载提示
    wx.request({
      url: 'http://localhost:8080/welfareCenter/page', // 后端接口地址
      method: 'GET',
      data: {
        pageNum: this.data.pageNum,
        pageSize: this.data.pageSize
      },
      success: (res) => {
        if (res.data.code === 200) {
          const newData = res.data.data.list; 
          if (newData && newData.length > 0) {
            // 将新数据拼接到原有数据中
            this.setData({
              welfareList: [...this.data.welfareList, ...newData],
              loading: false 
            });
            // 判断是否还有更多数据，比如根据返回的总条数判断，这里假设接口返回 total 字段
            if (newData.length < this.data.pageSize) { 
              this.setData({ noMore: true });
            }
          } else {
            // 没有新数据了
            this.setData({ 
              noMore: true,
              loading: false 
            });
          }
        } else {
          wx.showToast({
            title: '数据获取失败',
            icon: 'none'
          });
          this.setData({ loading: false });
        }
      },
      fail: (err) => {
        wx.showToast({
          title: '网络请求失败',
          icon: 'none'
        });
        this.setData({ loading: false });
      }
    });
  }
});